package com.alquiler.services;

import java.util.List;

import com.alquiler.dao.UsuarioDao;
import com.alquiler.entities.Usuario;
import com.alquiler.managers.SimpleEntityManager;

public class UsuarioService {
	
	private UsuarioDao usuarioDao;	
	
	public UsuarioService() {		
		this.usuarioDao = new UsuarioDao(SimpleEntityManager.getInstance().getEntityManager());		
	}
	
	
	public List<Usuario> findAll(){
        return usuarioDao.findAll();
	}
	
	public Usuario findById(Integer idUsuario){
        return usuarioDao.findById(idUsuario);
	}
	
	public Usuario findByCedula(Integer cedula){
		
		return usuarioDao.findByCedula(cedula);
	
         
	}
	
	
	public Usuario saveUsuario(Usuario usuario){		
	
		
		try{
            SimpleEntityManager.getInstance().beginTransaction();	          
            usuario = usuarioDao.save(usuario);
            SimpleEntityManager.getInstance().commit();
            
            return usuario;
        }catch(Exception e){
            e.printStackTrace();
            SimpleEntityManager.getInstance().rollBack();
            
            return null;
        }		
	}
	
	public Usuario updateUsuario(Usuario usuario){
		
		try{
			SimpleEntityManager.getInstance().beginTransaction();
			usuario = usuarioDao.update(usuario);				
		    SimpleEntityManager.getInstance().commit();
		    
		    return usuario;
        }catch(Exception e){
            e.printStackTrace();
            SimpleEntityManager.getInstance().rollBack();
            
            return null;
        }
		
	}
	
	
	public void deleteUsuario(Usuario usuario) throws Exception{
		try{
				
			SimpleEntityManager.getInstance().beginTransaction();
			usuarioDao.remove(usuario);	
			SimpleEntityManager.getInstance().commit();
		  
        }catch(Exception e){        	
            SimpleEntityManager.getInstance().rollBack();       
        }
		
	}

}
